package demo2;

import org.junit.Test;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;

/**
 * @description:实现类的加载器
 * @author:Mr.Cat
 * @create:2021-11-22 22:37
 **/
public class ClassLoaderTest {
    @Test
    public void test1() {
        //对应自定义类，使用系统类加载器进行加载
        ClassLoader loader = ClassLoaderTest.class.getClassLoader();
        //查看当前loader是谁
        System.out.println(loader);
        //查看上一层是谁
        //调用系统类加载器的getParent（）：获取扩展类加载器
        ClassLoader loader1 = loader.getParent();
        System.out.println(loader1);
        //调用扩展类加载器的getParent（）：无法获取引导类加载器
        //引导类主要负责加载java的核心类库，无法加载自定义类的
        ClassLoader loader2 = loader1.getParent();
        System.out.println(loader2);
        ClassLoader classLoader = String.class.getClassLoader();
        System.out.println(classLoader);
    }

    /*
     * Properties:用来读取配置文件
     * */
    @Test
    public void test2() throws Exception {
        Properties pros = new Properties();
       /* FileInputStream fis = new FileInputStream("src\\jdbc.properties");
        pros.load(fis);*/

        ClassLoader classLoader = ClassLoaderTest.class.getClassLoader();
        //此处文件默认路径在当前项目的src下
        InputStream is = classLoader.getResourceAsStream("jdbc.properties");
        pros.load(is);
        String user = pros.getProperty("user");
        String password = pros.getProperty("password");
        System.out.println(user);
        System.out.println(password);
    }
}

